711C - Coloring Trees - CodeForces Solution


dp *1700

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int inf=2e18+9;
int n,m,k,a[111],p[111][111],dp[111][111][111];
inline int dfs(int i,int j,int f){
	if(f>k)return inf;
	if(i==n)return (f==k?0:inf);
	if(~dp[i][j][f])return dp[i][j][f];
	int ans=inf;
	if(a[i])ans=dfs(i+1,a[i],f+(a[i]!=j));
	else for(int c=1;c<=m;++c)ans=min(ans,p[i][c-1]+dfs(i+1,c,f+(c!=j)));
	return dp[i][j][f]=ans;
}
signed main(){
	cin>>n>>m>>k;memset(dp,-1,sizeof(dp));
	for(int i=0;i<n;++i)cin>>a[i];
	for(int i=0;i<n;++i)for(int j=0;j<m;++j)cin>>p[i][j];
	cout<<(dfs(0,0,0)==inf?-1:dp[0][0][0])<<endl;
}


Comments

Submit
0 Comments
More Questions

1006A - Adjacent Replacements
1195C - Basketball Exercise
1206A - Choose Two Numbers
1438B - Valerii Against Everyone
822A - I'm bored with life
9A - Die Roll
1430B - Barrels
279B - Books
1374B - Multiply by 2 divide by 6
1093B - Letters Rearranging
1213C - Book Reading
1468C - Berpizza
1546B - AquaMoon and Stolen String
1353C - Board Moves
902A - Visiting a Friend
299B - Ksusha the Squirrel
1647D - Madoka and the Best School in Russia
1208A - XORinacci
1539B - Love Song
22B - Bargaining Table
1490B - Balanced Remainders
264A - Escape from Stones
1506A - Strange Table
456A - Laptops
855B - Marvolo Gaunt's Ring
1454A - Special Permutation
1359A - Berland Poker
459A - Pashmak and Garden
1327B - Princesses and Princes
1450F - The Struggling Contestant